Calendaring between user profiles

ABSTRACT

Calendar items can be scheduled with a joined group of user profiles. Scheduling calendar items can include, for each of the calendar items, sending a calendar item request to each of the user profiles in the group of user profiles. In response to the joining of a new user profile to the group, the new user profile can be automatically sent a calendar item request for each of one or more of the calendar items scheduled with the group of user profiles. Also, a first user profile can receive a request to share a calendar with a second user profile. The request can be received from the second user profile and can list one or more additional user profiles as recipients of the request. A representation of the request to share can include a control that can be selected to share the calendar with the additional user profile(s).

RELATED APPLICATIONS

The present application is a continuation of U.S. application Ser. No.13/685,701, filed Nov. 26, 2012, which is incorporated herein byreference. If any disclosures are incorporated herein by reference andsuch incorporated disclosures conflict in part or whole with the presentdisclosure, then to the extent of conflict, and/or broader disclosure,and/or broader definition of terms, the present disclosure controls. Ifsuch incorporated disclosures conflict in part or whole with oneanother, then to the extent of conflict, the later-dated disclosurecontrols.

BACKGROUND

Computer users often work in teams. It can be useful for the teams to beable to share calendar information. For example, the users in teamsoften provide user input to send other team members calendar itemrequests, such as meeting requests that can be accepted or declined, orpossibly tentatively accepted. Within computer systems such calendaritem requests can be considered to be sent from one user's user profileto the other user's user profile, where the user profiles are datastructures stored within computer systems. For example, such a calendaritem request may be sent from one computing machine that is logged intoa system or application with one user profile to one or more othercomputing machines that are logged into a system or application with oneor more other user profiles. As another example, a user profile for oneteam member may share a calendar (such as a personal calendar or a groupcalendar) with one or more other user profiles for other team members,providing those other user profile(s) with access to the calendar.

SUMMARY

The tools and techniques discussed herein relate to calendaring betweenuser profiles, such as providing calendaring information to userprofiles for members of a team. For example, when a team member joins ateam, a user profile for that team member may be joined to a userprofile group for the team, such as by adding the user profile to agroup definition (e.g., a distribution list or some other data structurethat indicates which user profiles are included in the group) for theteam. Similarly, when a team member leaves a team, a user profile forthat team member may be removed from the user profile group for theteam. As will be discussed herein, the joining of a user profile to thegroup may trigger one or more automatic responses. For example, theautomatic response(s) may include initiating the sharing with thenewly-joined user profile of one or more calendars associated with thegroup, such as personal calendars of the other user profiles in thegroup and/or a group calendar for the group. As another example, theautomatic response(s) may include sending one or more calendar iteminvitations to the newly-joined user profile, which can allow calendaritems applying to the group to be included on the newly-joined userprofile's calendar. Additionally, when a user profile is removed fromthe group, that removal may yield one or more automatic responses. Forexample, termination of that removed user profile's calendar sharingwith the group may be automatically initiated upon removal of the userprofile from the group. As another example, removal of calendar itemsrelated to the group from that user profile's calendar may beautomatically initiated upon removal of the user profile from the group.Also, the tools and techniques may include facilitating calendar sharingrequests to be initiated in response to user input, such as user inputfrom a team member that is to gain access to the shared calendarinformation.

In one embodiment, the tools and techniques can include schedulingcalendar items with a joined group of user profiles. Scheduling calendaritems can include, for each of the calendar items, sending a calendaritem request to each of the user profiles in the group of user profiles.A new user profile can be joined to the group of user profiles. Inresponse to the joining of the new user profile to the group, the newuser profile can be automatically sent a calendar item request for eachof one or more of the calendar items scheduled with the group of userprofiles.

In another embodiment of the tools and techniques, a first user profilecan receive a request to share a digital calendar with a second userprofile. The request can be received from the second user profile andcan list one or more additional user profiles as recipients of therequest to share. The additional user profile(s) can be one or more userprofiles other than the first user profile or the second user profile. Arepresentation of the request to share can be displayed. Therepresentation can include a control that can be selected to share thecalendar with the additional user profile(s). User input selecting thecontrol and indicating that the calendar is to be shared with theadditional user profile(s) can be received. Also, in response toreceiving the user input selecting the control and indicating that thecalendar is to be shared with the one or more additional user profiles,sharing of the calendar with the additional user profile(s) can beinitiated and may be fully carried out to share the calendar with theadditional user profile(s).

This Summary is provided to introduce a selection of concepts in asimplified form. The concepts are further described below in theDetailed Description. This Summary is not intended to identify keyfeatures or essential features of the claimed subject matter, nor is itintended to be used to limit the scope of the claimed subject matter.Similarly, the invention is not limited to implementations that addressthe particular techniques, tools, environments, disadvantages, oradvantages discussed in the Background, the Detailed Description, or theattached drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a suitable computing environment in whichone or more of the described embodiments may be implemented.

FIG. 2 is a schematic diagram of a computing environment or system forcalendaring between user profiles.

FIG. 3 is an illustration of an example of a user interface display forreceiving user input to define a calendar share message.

FIG. 4 is an illustration of an example of a user interface display fora received request to share resulting from selecting a send control inthe user interface display of FIG. 3 to send a calendar sharing request.

FIG. 5 is a flowchart of a technique for calendaring between userprofiles.

FIG. 6 is a flowchart of another technique for calendaring between userprofiles.

FIG. 7 is a flowchart of yet another technique for calendaring betweenuser profiles.

DETAILED DESCRIPTION

Embodiments described herein are directed to techniques and tools forimproved providing of calendar information between user profiles, suchas user profiles of users working in teams. Such improvements may resultfrom the use of various techniques and tools separately or incombination.

Such techniques and tools may include allowing calendar sharing among agroup of user profiles. For example, a manager of a team may provideuser input to share calendar information with user profiles for membersof the team. For example, the user profiles may be included in a groupby including the user profiles in a group definition, such as adistribution list. As new user profiles are joined to the group (e.g.,by adding the new user profiles to the distribution list) the new userprofiles can automatically receive calendar item requests and access tocalendar items that are directed towards the group (e.g., by providingaccess to one or more calendars, such as a group calendar and/orpersonal calendars of group members). When user profiles are removedfrom the group, the removed user profiles' access to shared calendarscan be revoked. Also, calendar items that are directed towards the groupmay be removed from the removed user profiles' calendars. The revocationof the shared access and the removal of calendar items may be initiatedautomatically upon the user profiles being removed from the group.

Additionally, a first user profile can send to a second user profile arequest to share a digital calendar with the first user profile (i.e., arequest for the first user to receive access to the digital calendar).The second user profile can grant the request (e.g., by user inputprovided by a user that is logged in using the second user profile),thereby initiating sharing of the calendar with the first user profile,which sharing can provide the first user profile with access to thecalendar. As an example, the user input to grant the request may includea single user input action, such as user input selecting a displayeduser interface control such as a button.

Accordingly, one or more substantial benefits can be realized from thetools and techniques described herein. For example, by automating thesharing of calendars and/or the removal or inclusion of calendar itemsfor user profiles that are joined with or removed from a group, the workof a manager in bringing in new team members for a team associated withthe group or removing team members from the team can be reduced. Otherefficiencies may also be produced. For example, allowing a user profileto send a request for calendar sharing that can be granted to share acalendar (or even group of calendars) with that user profile and/orother user profiles that are recipients of the request can provide formore efficient initiation of calendar sharing in some situations. Forexample, such a calendar sharing request may allow a user granting sucha request to do so with a single user input action.

The subject matter defined in the appended claims is not necessarilylimited to the benefits described herein. A particular implementation ofthe invention may provide all, some, or none of the benefits describedherein. Although operations for the various techniques are describedherein in a particular, sequential order for the sake of presentation,it should be understood that this manner of description encompassesrearrangements in the order of operations, unless a particular orderingis required. For example, operations described sequentially may in somecases be rearranged or performed concurrently. Moreover, for the sake ofsimplicity, flowcharts may not show the various ways in which particulartechniques can be used in conjunction with other techniques.

Techniques described herein may be used with one or more of the systemsdescribed herein and/or with one or more other systems. For example, thevarious procedures described herein may be implemented with hardware orsoftware, or a combination of both. For example, dedicated hardwarelogic components can be constructed to implement at least a portion ofone or more of the techniques described herein. For example and withoutlimitation, such hardware logic components may includeField-programmable Gate Arrays (FPGAs), Program-specific IntegratedCircuits (ASICs), Program-specific Standard Products (ASSPs),System-on-a-chip systems (SOCs), Complex Programmable Logic Devices(CPLDs), etc. Applications that may include the apparatus and systems ofvarious embodiments can broadly include a variety of electronic andcomputer systems. Techniques may be implemented using two or morespecific interconnected hardware modules or devices with related controland data signals that can be communicated between and through themodules, or as portions of an application-specific integrated circuit.Additionally, the techniques described herein may be implemented bysoftware programs executable by a computer system. As an example,implementations can include distributed processing, component/objectdistributed processing, and parallel processing. Moreover, virtualcomputer system processing can be constructed to implement one or moreof the techniques or functionality, as described herein.

I. Exemplary Computing Environment

FIG. 1 illustrates a generalized example of a suitable computingenvironment (100) in which one or more of the described embodiments maybe implemented. For example, one or more such computing environments canbe used as a calendar server computing system and/or a calendar clientcomputing system. Generally, various different general purpose orspecial purpose computing system configurations can be used. Examples ofwell-known computing system configurations that may be suitable for usewith the tools and techniques described herein include, but are notlimited to, server farms and server clusters, personal computers, servercomputers, smart phones, laptop devices, slate devices, game consoles,multiprocessor systems, microprocessor-based systems, programmableconsumer electronics, network PCs, minicomputers, mainframe computers,distributed computing environments that include any of the above systemsor devices, and the like.

The computing environment (100) is not intended to suggest anylimitation as to scope of use or functionality of the invention, as thepresent invention may be implemented in diverse general-purpose orspecial-purpose computing environments.

With reference to FIG. 1, the computing environment (100) includes atleast one processing unit or processor (110) and memory (120). In FIG.1, this most basic configuration (130) is included within a dashed line.The processing unit (110) executes computer-executable instructions andmay be a real or a virtual processor. In a multi-processing system,multiple processing units execute computer-executable instructions toincrease processing power. The memory (120) may be volatile memory(e.g., registers, cache, RAM), non-volatile memory (e.g., ROM, EEPROM,flash memory), or some combination of the two. The memory (120) storessoftware (180) implementing improved calendaring between user profiles.An implementation of this improved calendaring between user profiles mayinvolve all or part of the activities of the processor (110) and memory(120) being embodied in hardware logic as an alternative to or inaddition to the software (180).

Although the various blocks of FIG. 1 are shown with lines for the sakeof clarity, in reality, delineating various components is not so clearand, metaphorically, the lines of FIG. 1 and the other figures discussedbelow would more accurately be grey and blurred. For example, one mayconsider a presentation component such as a display device to be an I/Ocomponent (e.g., if the display device includes a touch screen). Also,processors have memory. The inventors hereof recognize that such is thenature of the art and reiterate that the diagram of FIG. 1 is merelyillustrative of an exemplary computing device that can be used inconnection with one or more embodiments of the present invention.Distinction is not made between such categories as “workstation,”“server,” “laptop,” “handheld device,” etc., as all are contemplatedwithin the scope of FIG. 1 and reference to “computer,” “computingenvironment,” or “computing device.”

A computing environment (100) may have additional features. In FIG. 1,the computing environment (100) includes storage (140), one or moreinput devices (150), one or more output devices (160), and one or morecommunication connections (170). An interconnection mechanism (notshown) such as a bus, controller, or network interconnects thecomponents of the computing environment (100). Typically, operatingsystem software (not shown) provides an operating environment for othersoftware executing in the computing environment (100), and coordinatesactivities of the components of the computing environment (100).

The storage (140) may be removable or non-removable, and may includecomputer-readable storage media such as flash drives, magnetic disks,magnetic tapes or cassettes, CD-ROMs, CD-RWs, DVDs, or any other mediumwhich can be used to store information and which can be accessed withinthe computing environment (100). The storage (140) stores instructionsfor the software (180).

The input device(s) (150) may be one or more of various different inputdevices. For example, the input device(s) (150) may include a userdevice such as a mouse, keyboard, trackball, etc. The input device(s)(150) may implement one or more natural user interface techniques, suchas speech recognition, touch and stylus recognition, recognition ofgestures in contact with the input device(s) (150) and adjacent to theinput device(s) (150), recognition of air gestures, head and eyetracking, voice and speech recognition, sensing user brain activity(e.g., using EEG and related methods), and machine intelligence (e.g.,using machine intelligence to understand user intentions and goals). Asother examples, the input device(s) (150) may include a scanning device;a network adapter; a CD/DVD reader; or another device that providesinput to the computing environment (100). The output device(s) (160) maybe a display, printer, speaker, CD/DVD-writer, network adapter, oranother device that provides output from the computing environment(100). The input device(s) (150) and output device(s) (160) may beincorporated in a single system or device, such as a touch screen or avirtual reality system.

The communication connection(s) (170) enable communication over acommunication medium to another computing entity. Additionally,functionality of the components of the computing environment (100) maybe implemented in a single computing machine or in multiple computingmachines that are able to communicate over communication connections.Thus, the computing environment (100) may operate in a networkedenvironment using logical connections to one or more remote computingdevices, such as a handheld computing device, a personal computer, aserver, a router, a network PC, a peer device or another common networknode. The communication medium conveys information such as data orcomputer-executable instructions or requests in a modulated data signal.A modulated data signal is a signal that has one or more of itscharacteristics set or changed in such a manner as to encode informationin the signal. By way of example, and not limitation, communicationmedia include wired or wireless techniques implemented with anelectrical, optical, RF, infrared, acoustic, or other carrier.

The tools and techniques can be described in the general context ofcomputer-readable media, which may be storage media or communicationmedia. Computer-readable storage media are any available storage mediathat can be accessed within a computing environment, but the termcomputer-readable storage media does not refer to propagated signals perse. By way of example, and not limitation, with the computingenvironment (100), computer-readable storage media include memory (120),storage (140), and combinations of the above.

The tools and techniques can be described in the general context ofcomputer-executable instructions, such as those included in programmodules, being executed in a computing environment on a target real orvirtual processor. Generally, program modules include routines,programs, libraries, objects, classes, components, data structures, etc.that perform particular tasks or implement particular abstract datatypes. The functionality of the program modules may be combined or splitbetween program modules as desired in various embodiments.Computer-executable instructions for program modules may be executedwithin a local or distributed computing environment. In a distributedcomputing environment, program modules may be located in both local andremote computer storage media.

For the sake of presentation, the detailed description uses terms like“determine,” “identify,” “schedule,” “join,” “remove,” “send,”“receive,” “share,” and “operate” to describe computer operations in acomputing environment. These and other similar terms are high-levelabstractions for operations performed by a computer, and should not beconfused with acts performed by a human being, unless performance of anact by a human being (such as a “user”) is explicitly noted. The actualcomputer operations corresponding to these terms vary depending on theimplementation.

II. System and Environment for Calendaring Between User Profiles

FIG. 2 is a schematic diagram of an environment or system (200) forcalendaring between user profiles in conjunction with which one or moreof the described embodiments may be implemented. The system (200) caninclude a calendar data server (210), which can access and manage aserver calendar data store (212). The server calendar data store (212)can include calendar information (214) (though it may also include otherinformation such as e-mail information). The calendar information (214)can include one or more calendars (216), such as one or more personalcalendars for a single user profile and/or one or more group calendarsfor groups of user profiles. Each of the calendars (216) can includecalendar items (218), which are data structures representing informationsuch as meeting information in the corresponding calendar (216).

The calendar data server (210) can also manage calendar permissions(220), which are data structures that indicate which user profiles (222)(such as individual user profiles (222) and/or or groups of userprofiles (222)) can access each of the calendars (216). The calendarpermissions (220) may indicate different types or levels of permissionsfor different user profiles (222) or groups of user profiles (222). Thecalendar data server (210) can also include group definitions (224),which can define groups of user profiles (222). The groups of userprofiles (222) defined by the group definitions (224) may be grantedcalendar permissions (220) on a per-group basis. Groups of user profiles(222) may be used for other purposes, such as distributing messages suchas requests to an entire group of user profiles (222), or taking otheractions that apply to a whole group of user profiles. The calendar dataserver (210) can join user profiles (222) in a group by adding the userprofiles (222) to a group definition (224). The data items (214, 216,218, 222, and 224) may each be separate data structures, or they may beintermingled with each other and/or with other data items. The calendardata server (210) may also be a server for other types of information,such as e-mail information, etc.

The system (200) can include calendar data clients (230), which can becomputer systems that can communicate with the calendar data server(210) through a computer network (240). The computer network (240) mayinclude one or more of various different types of wired and/or wirelesscomputer networks, such as local area networks, wide area networks,global computer networks, etc. The calendar data clients (230) can sendcalendar item requests (260), such as meeting requests, to othercalendar data clients (230). Such calendar item requests may be sentdirectly and/or via the calendar data server (210). If a first calendardata client (230) is logged in to the calendar data server (210) with afirst user profile (222), and that first calendar data client (230)sends a calendar item request (260) to a second user profile (222), thecalendar item request (260) can be sent to the calendar data server(210). When another calendar data client (230) (or possibly even thefirst calendar data client (230)) is logged in with the second userprofile (222), the calendar data server (210) can send the calendar itemrequest (260) to that other calendar data client (230), possibly alongwith calendar information (214) and/or e-mail information associatedwith the second user profile (222). Also, the calendar data server (210)may automatically generate additional calendar item requests (260) forcalendar items (218) that apply to a group of user profiles (222) (e.g.,where the group was originally indicated as a recipient of the calendaritem (218)), such as in response to a new user profile being added to agroup definition (224). The calendar data server (210) can also sendsuch calendar item requests to calendar data clients (230) that havelogged in with the newly-added user profile (222).

The calendar data clients (230) can also send requests to share (270),which can be requests to share calendar information (214) with thesending user profile. Such requests to share (270) may be sent andreceived in the same manner as the calendar item requests (260), and/orin some other manner.

The calendar data clients (230) can also send responses (280) to therequests (260 and 270). Additionally, the calendar data clients (230)can display representations of the requests (260 and 270) and theresponses (280), and may also display representations of the calendars(216) to which associated user profiles have appropriate calendarpermissions (220). The calendar data clients (230) can provide suchdisplays using output devices (such as the output devices (160)discussed above). Additionally, the calendar data clients (230) and/orthe calendar data server (210) can include input devices, such as thetypes of input devices (150) discussed above, to receive user input,such as user input provided to edit the calendars (216), calendarpermissions (220), group definitions (224), and/or user profiles (222),and to draft and edit requests (260 and 270) and responses (280).

III. Examples of User Interface Representations for Sharing Requests andResponses

FIG. 3 illustrates an example of a user interface display (300) forreceiving user input to define a calendar share message. The userinterface display (300) can include a “TO” field (310), where text canbe entered by user input to specify one or more recipients of thecalendar share message. In the illustration, the label “TEAM” is enteredin the “TO” field (310), which can indicate that the request to share isto be sent to all members of a user profile group labeled “TEAM”,although labels (e.g., email addresses) for individual user profilescould be entered in the “TO” field in addition to or instead of such agroup label. The user interface display (300) may also include a“SUBJECT” field (320) where text may be entered to indicate the subjectof the calendar share message. The user interface display (300) can alsoinclude a calendar sharing request user interface control (330), whichcan be selected to indicate that the resulting calendar share message isto be a calendar sharing request, which can be sent to request that thesender be granted permission to access the calendar(s) of therecipient(s). In the example, the calendar sharing request userinterface control (330) is a check box, although some other type ofcontrol could be used (a drop down menu, etc.). The user interfacedisplay (300) may also include a calendar sharing control (340), whichcan be selected to indicate that the calendar share message is to be acalendar sharing message, which can be sent to share the sender'scalendar with the recipient(s). Also, user input can be provided at asharing detail level control (350) to specify a level of calendardetails to be shared if the calendar sharing control (340) is selected.The sharing detail level control (350) may be hidden or grayed-out ifthe calendar sharing control (340) is not currently selected.Additionally, the user interface display (300) can include a messagefield (360), where text for a message to the recipients of the calendarshare message can be entered. The user interface display (300) can alsoinclude a message send user interface control (370), which may be in theform of a button or some other user interface control.

In the example, the calendar sharing request control (330) is selectedand the calendar sharing control (340) is de-selected. Selection of thesend control (370) with such a selection can send a request to sharethat has properties reflecting the selections on the user interfacedisplay (300), such as the requests to share (270) discussed above withreference to FIG. 2.

Referring to FIG. 4, an example of a user interface display (400) for areceived request to share is illustrated. The user interface display(400) can result from the request to share sent in response to selectingthe send control (370) in the user interface display (300) of FIG. 3.The user interface display (400) can include a “TO” field (410) that canlist the recipients of the request to share. In this example, therecipients are listed as the labels for the user profiles that belong tothe user profile group with the label “TEAM” discussed above.Accordingly, the “TO” field (410) reads, “EDIE BELL; SALLY COURT; MIKEDEAN”. Alternatively, the “TO” field (410) could read “TEAM” to indicatethe group labeled “TEAM” is the recipient. The user interface display(400) also includes a “SUBJECT” field (420), a “SENT” field (420)indicating a time when the request to share was sent, and a messagefiled (460).

Additionally, the user interface display (400) can include userinterface controls for receiving user input to indicate a response tothe request to share. For example, the user interface display (400) caninclude a sender share control (470), which can be selected to share therecipient's calendar with just the sender of the request to share (here,“JOE ALLEN”). The user interface display (400) can also include an allshare control (480) that can be selected to share the recipient'scalendar with the sender of the request to share, and with all otherrecipients of the request to share. For example, if the user interfacedisplay (400) is being displayed for EDIE BELL, then selecting the allshare control (480) can result in EDIE BELL's calendar being shared withthe sender JOE ALLEN and with the other recipients SALLY COURT and MIKEDEAN. The user interface display (400) can also include a declinecontrol (490), which can be selected by user input to decline to sharethe recipient's calendar in response to the request to share.

In the example, the controls (470, 480, and 490) for responding to therequest to share are buttons. However, other controls may be used forresponding to the request to share. For example, sharing with thesender, sharing with all, and declining the request could all be listedas menu options in a drop-down menu in the user interface display (400).As another example, the user interface display (400) could include anadditional button for sharing with the other recipients of the requestto share, without sharing with the sender. Additionally, options may beprovided to allow user input to select a level of detail to share. Forexample, the user interface display (400) may include a drop-down menufor selecting a level of detail to share (e.g., full details,availability only, or limited details (which may include, for example,subjects of calendar items in addition to availability)). Alternatively,controls for selecting such details could appear in a pop-up dialog thatis surfaced after selection of one of the share controls (470 or 480) toinitiate sharing of the recipient's calendar.

IV. Techniques for Calendaring Between User Profiles

Several techniques for calendaring between user profiles will now bediscussed. Each of these techniques can be performed in a computingenvironment. For example, each technique may be performed in a computersystem that includes at least one processor and memory includinginstructions stored thereon that when executed by at least one processorcause at least one processor to perform the technique (memory storesinstructions (e.g., object code), and when processor(s) execute(s) thoseinstructions, processor(s) perform(s) the technique). Similarly, one ormore computer-readable storage media may have computer-executableinstructions embodied thereon that, when executed by at least oneprocessor, cause at least one processor to perform the technique. Thetechniques discussed below may be performed at least in part by hardwarelogic.

Referring to FIG. 5, a technique for calendaring between user profileswill be discussed. The technique can include scheduling (510) calendaritems with a joined group of user profiles. Scheduling the calendaritems can include, for each of the calendar items, sending a calendaritem request to each of the user profiles in the group of user profiles.A new user profile can be joined (520) to the group of user profiles.The technique can further include automatically sending (530) the newuser profile a calendar item request for each of one or more of thecalendar items scheduled with the group of user profiles. Automaticallysending (530) the calendar item request(s) can be performed in responseto joining the new user profile to the group of user profiles.

The technique of FIG. 5 can further include sharing group calendarinformation with the group of user profiles. Additionally, in responseto joining the new user profile to the group of user profiles, thetechnique can include automatically providing the new user profile withaccess to the group calendar information.

The technique of FIG. 5 may further include, for each calendar itemrequest for a calendar item of the one or more of the calendar itemsscheduled with the group of user profiles, automatically accepting thecalendar item request and adding the calendar item to a calendar for thenew user profile. The technique may include displaying a representationof each calendar item request, the representation including anacceptance user interface control that can be selected by user input toaccept the calendar item request and add the calendar item to a calendarfor the new user profile. The representation may further include arejection user interface control that can be selected by user input toreject (or decline) the calendar item request and avoid adding thecalendar item to a calendar for the new user profile. Also, therepresentation may include a tentative acceptance user interface controlthat can be selected by user input to tentatively accept the calendaritem request and add the calendar item to a calendar for the new userprofile.

The technique may further include, in response to joining (520) the newuser profile to the group of user profiles, automatically sending asharing invitation to the new user profile, the sharing invitationincluding information on accessing group calendar information for thegroup of user profiles. The sharing invitation may provide a controlthat can be selected by user input to share a personal calendarassociated with the user profile. Also, the sharing invitation mayprovide an option (such as a control that can be selected to select theoption) for sharing a personal calendar with a sender of the sharinginvitation, and an option (such as a control that can be selected toselect the option) for sharing the personal calendar with the group ofuser profiles.

In the technique of FIG. 5, the group of user profiles may be joined byinclusion in a group definition, such as a distribution list or someother data structure. Joining the new user profile to the group of userprofiles can include adding the new user profile to the groupdefinition.

The technique of FIG. 5 may include filtering the calendar itemsscheduled with the group of user profiles to yield a filtered set of oneor more calendar items (e.g., the filtered set may exclude calendaritems occurring in the past). Automatically sending (530) the new userprofile a calendar item request for one or more of the calendar itemsscheduled with the group of user profiles can include automaticallysending the new user profile a calendar item request for each of thecalendar items in the filtered set of calendar items. Filtering thecalendar items can include invoking a rule that excludes calendar itemswith scheduled times in the past.

The technique of FIG. 5 may include removing a user profile from thegroup of user profiles. In response to this removal, the technique mayinclude automatically identifying calendar items scheduled with thegroup of user profiles in a calendar associated with the removed userprofile, and removing the identified calendar items from the calendarassociated with the removed user profile.

Referring to FIG. 6, another technique for calendaring between userprofiles will be discussed. The technique can include a first userprofile receiving (610) from a second user profile a request to share adigital calendar (such as a personal calendar for the first user profileor a group calendar) with the second user profile. The request to sharecan list one or more additional user profiles as recipients of therequest to share, where the additional user profile(s) can be userprofile(s) other than the first user profile or the second user profile.For example, the user profile(s) may be listed separately and/or bylisting one or more groups to which user profiles belong.

The FIG. 6 technique can include displaying (620) a representation ofthe request to share. The representation can include a control that canbe selected to share the calendar with the one or more additional userprofiles. User input selecting the control and indicating that thecalendar is to be shared with the one or more additional user profilescan be received (630). The user input can be a single input actionselecting the control, or multiple input actions. In response toreceiving (630) the user input, sharing of the calendar with the one ormore additional user profiles can be initiated (640).

Initiating (640) the sharing of the calendar can include automaticallyinvoking a process to automatically share the calendar with the one ormore additional user profiles. The user input selecting the control canindicate that the calendar is to be shared with the second user profilethat sent the request and the additional user profile(s) that arerecipients of the request. The technique may further include, inresponse to receiving (630) the user input, initiating sharing of thecalendar with the second user profile.

Referring to FIG. 7, yet another technique for calendaring between userprofiles will be discussed. The technique can include scheduling (710)calendar items with a joined group of user profiles. The group of userprofiles can be joined by inclusion in a group definition. Scheduling(710) the calendar items can include, for each of the calendar items,sending a calendar item request to each of the user profiles in thegroup of user profiles. Group calendar information, such as a groupcalendar and/or personal calendars for user profiles in the group, canbe shared (720) with the group of user profiles. A new user profile canbe joined (730) to the group of user profiles by adding the new userprofile to the group definition. The technique can further includefiltering (740) the calendar items scheduled with the group of userprofiles to yield a filtered set of one or more calendar items. Inresponse to joining (730) the new user profile to the group of userprofiles, the technique can include automatically sending (750) the newuser profile a calendar item request for each of the calendar items inthe filtered set of calendar items. In response to joining the new userprofile to the group of user profiles, the new user profile can beautomatically provided (760) with access to the group calendarinformation.

The FIG. 7 technique can further include removing (770) a user profilefrom the group of user profiles. In response to removing (770) theremoved user profile, calendar items scheduled with the group of userprofiles in a calendar associated with the removed user profile can beautomatically identified (780) and removed (790) from the calendarassociated with the removed user profile.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described above.Rather, the specific features and acts described above are disclosed asexample forms of implementing the claims.

I claim:
 1. A computer system comprising: at least one processor; andmemory comprising instructions stored thereon that when executed by atleast one processor cause at least one processor to perform actscomprising: scheduling computer-readable calendar items with a joinedgroup of computer-readable user profiles, scheduling calendar itemsincluding, for each of the calendar items, sending a calendar itemrequest to each of the user profiles in the group of user profiles;joining a new user profile to the group of user profiles; in response tojoining the new user profile to the group of user profiles, sending thenew user profile a computer-readable calendar item request for each ofone or more of the calendar items scheduled with the group of userprofiles, with each calendar item request sent to the new user profilecomprising a request to add a corresponding calendar item that isscheduled with the group of user profiles to a calendar for the new userprofile; and in response to joining the new user profile to the group ofuser profiles, sending a sharing invitation to the new user profile, thesharing invitation comprising information on accessing group calendarinformation for the group of user profiles, with the sharing invitationbeing different from the one or more calendar item requests sent to thenew user profile.
 2. The computer system of claim 1, wherein the sharinginvitation provides a control that can be selected by user input toshare a personal calendar associated with the new user profile.
 3. Thecomputer system of claim 2, wherein the sharing invitation provides anoption for sharing the personal calendar with a sender of the sharinginvitation, and an option for sharing the personal calendar with thegroup of user profiles.
 4. The computer system of claim 1, wherein theacts further comprise displaying a representation of each calendar itemrequest, the representation including an acceptance user interfacecontrol that is configured to be selected by user input to accept thecalendar item request and add the calendar item to a calendar for thenew user profile, and the representation further including a rejectionuser interface control that is configured to be selected by user inputto reject the calendar item request and avoid adding the calendar itemto a calendar for the new user profile.
 5. The computer system of claim1, wherein the acts further comprise removing a user profile from thegroup of user profiles, and in response to removing the removed userprofile, performing the following: identifying calendar items scheduledwith the group of user profiles in a calendar associated with theremoved user profile; and removing the identified calendar items fromthe calendar associated with the removed user profile.
 6. The computersystem of claim 1, wherein the acts further comprise, for each calendaritem request for a calendar item of the one or more of the calendaritems scheduled with the group of user profiles, accepting the calendaritem request and adding the calendar item to a calendar for the new userprofile.
 7. A computer system comprising: at least one processor; andmemory comprising instructions stored thereon that when executed by atleast one processor cause at least one processor to perform actscomprising: scheduling computer-readable calendar items with a joinedgroup of computer-readable user profiles, scheduling calendar itemsincluding, for each of the calendar items, sending a calendar itemrequest to each of the user profiles in the group of user profiles;joining a new user profile to the group of user profiles; filtering thecalendar items scheduled with the group of user profiles to yield afiltered set of one or more calendar items; and in response to joiningthe new user profile to the group of user profiles, sending the new userprofile a computer-readable calendar item request for each of thecalendar items in the filtered set of one or more calendar items, witheach calendar item request sent to the new user profile comprising arequest to add a corresponding calendar item that is scheduled with thegroup of user profiles to a calendar for the new user profile.
 8. Thecomputer system of claim 7, wherein the group of user profiles is joinedby inclusion in a computer-readable group definition, and wherein thenew user profile is joined to the group of user profiles by adding thenew user profile to the group definition.
 9. The computer system ofclaim 7, wherein the acts further comprise the following: removing auser profile from the group of user profiles; in response to removingthe removed user profile, identifying calendar items scheduled with thegroup of user profiles in a calendar associated with the removed userprofile; and in response to removing the removed user profile, removingthe identified calendar items from the calendar associated with theremoved user profile.
 10. A computer system comprising: at least oneprocessor; and memory comprising instructions stored thereon that whenexecuted by at least one processor cause at least one processor toperform acts comprising: scheduling computer-readable calendar itemswith a joined group of computer-readable user profiles, schedulingcalendar items including, for each of the calendar items, sending acalendar item request to each of the user profiles in the group of userprofiles; joining a new user profile to the group of user profiles; inresponse to joining the new user profile to the group of user profiles,sending the new user profile a computer-readable calendar item requestfor each of one or more of the calendar items scheduled with the groupof user profiles; and displaying a representation of each calendar itemrequest, the representation including an acceptance user interfacecontrol that is configured to be selected by user input to accept thecalendar item request and add the calendar item to a calendar for thenew user profile, and the representation further including a rejectionuser interface control that is configured to be selected by user inputto reject the calendar item request and avoid adding the calendar itemto a calendar for the new user profile.
 11. The computer system of claim10, wherein the acts further comprise: sharing group calendarinformation with the group of user profiles; and in response to joiningthe new user profile to the group of user profiles, providing the newuser profile with access to the group calendar information.
 12. Thecomputer system of claim 10, wherein the acts further comprise, for eachcalendar item request for a calendar item of the one or more of thecalendar items scheduled with the group of user profiles, accepting thecalendar item request and adding the calendar item to a calendar for thenew user profile.
 13. The computer system of claim 10, wherein therepresentation further includes a tentative acceptance user interfacecontrol that can be selected by user input to tentatively accept thecalendar item request and add the calendar item to a calendar for thenew user profile.
 14. The computer system of claim 10, wherein the actsfurther comprise, in response to joining the new user profile to thegroup of user profiles, sending a sharing invitation to the new userprofile, the sharing invitation comprising information on accessinggroup calendar information for the group of user profiles.
 15. Thecomputer system of claim 14, wherein the sharing invitation provides acontrol that can be selected by user input to share a personal calendarassociated with the user profile.
 16. The computer system of claim 15,wherein the sharing invitation provides an option for sharing thepersonal calendar with a sender of the sharing invitation, and an optionfor sharing the personal calendar with the group of user profiles. 17.The computer system of claim 10, wherein the group of user profiles arejoined by inclusion in a group definition, and wherein joining the newuser profile to the group of user profiles comprises adding the new userprofile to the group definition.
 18. The computer system of claim 10,wherein the acts further comprise filtering the calendar items scheduledwith the group of user profiles to yield a filtered set of one or morecalendar items, wherein sending the new user profile a calendar itemrequest for one or more of the calendar items scheduled with the groupof user profiles comprises sending the new user profile a calendar itemrequest for each of the calendar items in the filtered set of one ormore calendar items.
 19. The computer system of claim 10, whereinfiltering of the calendar items comprises invoking a rule that excludescalendar items with scheduled times in the past.
 20. The computer systemof claim 10, wherein the acts further comprise removing a user profilefrom the group of user profiles, and in response to removing the removeduser profile, performing the following: identifying calendar itemsscheduled with the group of user profiles in a calendar associated withthe removed user profile; and removing the identified calendar itemsfrom the calendar associated with the removed user profile.